//! 快照点
//!
//!

use crate::core::event_body::{BigInt, EventBody};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SnapshotPoint {
    // 快照点event
    pub event_body: EventBody,

    // 上一个快照点到当前快照点之间所有event（包含当前快照点event）打包的
    // 所有交易的hash构建的tree的root hash。
    pub msg_hash_tree_root: String,

    // 与上一个快照点之间的交易手续费总额
    pub total_fee: BigInt,

    // 快照点event时最大的messageId（含快照点内打包的消息）
    pub msg_max_id: BigInt,

    // 所有柱子节点的有效event数量（两个快照点之间每个柱子events的不同otherparent信息）
    pub concurrent_hash_map: HashMap<String, i64>,

    // 手续费奖励分成比例
    pub reward_ratio: f64,
}
